Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In many cases, software applications are designed to run on distributed computing systems. These distributed computing systems may include databases, distributed processor arrays, or other distributed computing systems. These systems may be operated using the Paxos algorithm or protocol (“Paxos” herein). Paxos may be used to ensure that each processor or computer node in a cluster is processing data in the proper order, and that each node maintains the same state. In this manner, individual computers in a Paxos system may fail, but no operations will be lost during the failure. Each read and write operation is written to disk before it is processed. This ensures that no operations are lost, but also results in high overhead.